package com.xdb.sqlparser.util;

import com.xdb.sqlparser.ast.expr.SQLCharExpr;
import com.xdb.sqlparser.ast.expr.SQLIntegerExpr;
import com.xdb.sqlparser.ast.expr.SQLNumberExpr;
import com.xdb.sqlparser.visitor.SQLPrintableVisitor;

public class SQLASTOutputVisitorUtils {

	public static boolean visit(SQLPrintableVisitor visitor, SQLIntegerExpr x) {
		visitor.print(x.getNumber().toString());
		return false;
	}

	public static boolean visit(SQLPrintableVisitor visitor, SQLNumberExpr x) {
		visitor.print(x.getNumber().toString());
		return false;
	}

	public static boolean visit(SQLPrintableVisitor visitor, SQLCharExpr x) {
		visitor.print('\'');

		String text = x.getText();
		text = text.replaceAll("'", "''");
		text = text.replaceAll("\\\\", "\\\\");

		visitor.print(text);

		visitor.print('\'');
		return false;
	}
}
